using System.Text.Json.Serialization;

namespace Sage.CloudStorage.Qiniu.Models
{
    /// <summary>
    /// 列举已上传分片响应
    /// 包含分片上传任务的详细信息和已上传的分片列表
    /// </summary>
    public class ListPartsResponse
    {
        /// <summary>
        /// 分片上传任务的唯一标识符
        /// 用于标识和管理特定的分片上传任务
        /// </summary>
        [JsonPropertyName("uploadId")]
        public string UploadId { get; set; } = "";

        /// <summary>
        /// 分片上传任务的过期时间戳
        /// 超过此时间后，未完成的分片上传任务将被自动清理
        /// </summary>
        [JsonPropertyName("expireAt")]
        public long ExpireAt { get; set; }

        /// <summary>
        /// 分片编号标记
        /// 用于分页查询，表示从哪个分片编号开始返回结果
        /// </summary>
        [JsonPropertyName("partNumberMarker")]
        public int PartNumberMarker { get; set; }

        /// <summary>
        /// 已上传的分片信息列表
        /// 包含每个分片的详细信息，如分片编号、ETag、大小等
        /// </summary>
        [JsonPropertyName("parts")]
        public List<PartInfo> Parts { get; set; } = [];
    }
}
